
<?php
//api.php是后端处理页面，ai连接需要在这里进行
header('Content-Type: application/json');
//注意，页面ai.html与api.php全部归科乐云版权所有，禁止侵权行为

//你可以自己获取api，推荐使用kimi的ai
$apiKey = ''; //这里填写API Key密钥
$url = ''; //这里是模型的服务地址

// 接收前端请求
$input = json_decode(file_get_contents('php://input'), true);
$message = $input['message'] ?? '请说明你的问题';

// 构造标准请求体
$payload = [
    'model' => '',  // 这里需要填写你需要的模型名称，更高级的模型，支持更大的上下文。
    'messages' => [
        [
            'role' => 'user',
            'content' => $message
        ]
    ],
    'temperature' => 0.6,  // 建议温度设置
    'max_tokens' => 2000,  // 根据需要调整输出长度
    'top_p' => 1,
    'frequency_penalty' => 0,
    'presence_penalty' => 0,
    'stream' => false  // 是否流式返回
];

// 初始化cURL
$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer '.$apiKey
    ],
    CURLOPT_POSTFIELDS => json_encode($payload),
    CURLOPT_TIMEOUT => 60  // 根据需要调整超时时间
]);

// 执行请求并获取完整响应
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

// 错误诊断
if ($httpCode != 200) {
    // 记录完整响应到日志文件
    $logFile = 'api_errors.log';
    $logContent = date('Y-m-d H:i:s') . " | HTTP $httpCode | Response: $response\n";
    file_put_contents($logFile, $logContent, FILE_APPEND);
    
    http_response_code($httpCode);
    echo json_encode(['error' => "请求失败，状态码: $httpCode"]);
    exit;
}

// 解析响应
try {
    $result = json_decode($response, true);
    
    // 根据文档响应格式提取内容
    if (isset($result['choices'][0]['message']['content'])) {
        echo json_encode(['answer' => $result['choices'][0]['message']['content']]);
    } else {
        echo json_encode(['error' => '未找到有效回复', 'debug' => $result]);
    }
} catch (Exception $e) {
    echo json_encode(['error' => '响应解析失败', 'debug' => $response]);
}
//禁止侵权，禁止侵权。

?>